﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Permissions;
using System.Collections;
using System.Linq;

using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using uacars;


namespace CADLibraryClass
{
    public class PeticionesCAD
    {
         private static string cadenaConexion;

        public PeticionesCAD()
        {
            cadenaConexion = Singleton.Instancia.Cadena;
        }


        public bool AltaPeticion(int id, int cliente, string producto, string modelo, string cadenas, string chofer, string caravana, DateTime fecha)
        {
            bool estadoOperacion = false;

            try
            {
                DataSet bdvirtual = new DataSet();

                SqlDataAdapter da = new SqlDataAdapter("select * from peticion", cadenaConexion);
                da.Fill(bdvirtual, "peticion");

                DataTable dt = new DataTable();
                dt = bdvirtual.Tables["peticion"];

                DataRow nuevaFila = dt.NewRow();
                nuevaFila[0] = id;
                nuevaFila[1] = cliente;
                nuevaFila[2] = producto;
                nuevaFila[3] = modelo;
                nuevaFila[4] = cadenas;
                nuevaFila[5] = chofer;
                nuevaFila[6] = caravana;
                nuevaFila[7] = fecha;
               
              
               

                dt.Rows.Add(nuevaFila);

                SqlCommandBuilder cBuilder = new SqlCommandBuilder(da);

                da.Update(bdvirtual, "peticion");

                dt.AcceptChanges();
            }


            catch (SqlException sqlex)
            {
                throw new Exception("Error insertando peticion en uacarsBD: " + id, sqlex);
            }

            catch (Exception ex)
            {
                throw ex;
            }
            estadoOperacion = true;

            return (estadoOperacion);
        }

        
        public bool BorrarPeticion(int id)
        {
            try
            {
                DataSet bdvirtual = new DataSet();

                SqlDataAdapter da = new SqlDataAdapter("select * from peticion", cadenaConexion);
                da.Fill(bdvirtual, "peticion");

                DataTable dt = new DataTable();
                dt = bdvirtual.Tables["peticion"];

                DataRow[] filaBorrar;
                filaBorrar = dt.Select("id = " + id);               
                filaBorrar[0].Delete();

                SqlCommandBuilder cBuilder = new SqlCommandBuilder(da);

                da.Update(bdvirtual, "peticion");

                dt.AcceptChanges();

            }

            catch (SqlException sqlex)
            {
                throw new Exception("Error borrando peticion en uacarsBD: " + id, sqlex);
            }

            catch (Exception ex)
            {
                throw ex;
            }
            return true;
        }



        public DataTable BuscarPeticiones()
        {
            

            DataSet bdvirtual = new DataSet();

            SqlDataAdapter da = new SqlDataAdapter("select * from peticion", cadenaConexion);


            da.Fill(bdvirtual, "peticion");


            DataTable dt = new DataTable();
            dt = bdvirtual.Tables["peticion"];

            return (dt);

        }
        /*
        public DataTable BuscarPeticiones(int id, int vehiculo, int cliente, int empleado, int chofer, string tipotransaccion, string formadepago, float precio, float preciofinal, DateTime fecharealizado, DateTime fechafinalizado, string estadopeticion, string opcion1, string opcion2, string opcion3, string opcion4, string opcion5, string opcion6, ref DataTable todos, ref DataTable curso, ref DataTable fin)
        {
            string filtro = "";

            if (id != 0) filtro += "id = " + id;
            if (vehiculo != 0) { if (filtro != "") filtro += " AND "; filtro += "vehiculo = " + vehiculo; }
            if (cliente != 0) { if (filtro != "") filtro += " AND "; filtro += "cliente = " + cliente; }
            if (empleado != 0) { if (filtro != "") filtro += " AND "; filtro += "empleado = " + empleado; }
            if (chofer != 0) { if (filtro != "") filtro += " AND "; filtro += "chofer = " + chofer; }
            if (tipotransaccion != null && tipotransaccion != "") { if (filtro != "") filtro += " AND "; filtro += "tipotransaccion LIKE '" + tipotransaccion + "'"; }
            if (formadepago != null && formadepago != "") { if (filtro != "") filtro += " AND "; filtro += "formadepago LIKE '" + formadepago + "'"; }
            if (precio != 0.0F) { if (filtro != "") filtro += " AND "; filtro += "precio = " + precio; }
            if (preciofinal != 0.0F) { if (filtro != "") filtro += " AND "; filtro += "preciofinal = " + preciofinal; }
            if (fecharealizado != DateTime.Parse("01/01/1900")) { if (filtro != "") filtro += " AND "; filtro += "fecharealizado = '" + fecharealizado.Date +"'"; }
            if (fechafinalizado != DateTime.Parse("01/01/1900")) { if (filtro != "") filtro += " AND "; filtro += "fechafinalizado = '" + fechafinalizado.Date +"'"; }
            if (estadopeticion != null && estadopeticion != "") { if (filtro != "") filtro += " AND "; filtro += "estadopeticion LIKE '" + estadopeticion + "'"; }
            if (opcion1 != null && opcion1 != "") { if (filtro != "") filtro += " AND "; filtro += "(opcion1 LIKE '" + opcion1 + "' OR opcion2 LIKE '" + opcion1 + "' OR opcion3 LIKE '" + opcion1 + "' OR opcion4 LIKE '" + opcion1 + "' OR opcion5 LIKE '" + opcion1 + "' OR opcion6 LIKE '" + opcion1 + "')"; }
            if (opcion2 != null && opcion2 != "") { if (filtro != "") filtro += " AND "; filtro += "(opcion1 LIKE '" + opcion2 + "' OR opcion2 LIKE '" + opcion2 + "' OR opcion3 LIKE '" + opcion2 + "' OR opcion4 LIKE '" + opcion2 + "' OR opcion5 LIKE '" + opcion2 + "' OR opcion6 LIKE '" + opcion2 + "')"; }
            if (opcion3 != null && opcion3 != "") { if (filtro != "") filtro += " AND "; filtro += "(opcion1 LIKE '" + opcion3 + "' OR opcion2 LIKE '" + opcion3 + "' OR opcion3 LIKE '" + opcion3 + "' OR opcion4 LIKE '" + opcion3 + "' OR opcion5 LIKE '" + opcion3 + "' OR opcion6 LIKE '" + opcion3 + "')"; }
            if (opcion4 != null && opcion4 != "") { if (filtro != "") filtro += " AND "; filtro += "(opcion1 LIKE '" + opcion4 + "' OR opcion2 LIKE '" + opcion4 + "' OR opcion3 LIKE '" + opcion4 + "' OR opcion4 LIKE '" + opcion4 + "' OR opcion5 LIKE '" + opcion4 + "' OR opcion6 LIKE '" + opcion4 + "')"; }
            if (opcion5 != null && opcion5 != "") { if (filtro != "") filtro += " AND "; filtro += "(opcion1 LIKE '" + opcion5 + "' OR opcion2 LIKE '" + opcion5 + "' OR opcion3 LIKE '" + opcion5 + "' OR opcion4 LIKE '" + opcion5 + "' OR opcion5 LIKE '" + opcion5 + "' OR opcion6 LIKE '" + opcion5 + "')"; }
            if (opcion6 != null && opcion6 != "") { if (filtro != "") filtro += " AND "; filtro += "(opcion1 LIKE '" + opcion6 + "' OR opcion2 LIKE '" + opcion6 + "' OR opcion3 LIKE '" + opcion6 + "' OR opcion4 LIKE '" + opcion6 + "' OR opcion5 LIKE '" + opcion6 + "' OR opcion6 LIKE '" + opcion6 + "')"; }

            string nombreTabla = "peticiones";
            DataSet ds = new DataSet();
            ds.Tables.Add(nombreTabla);
            SqlConnection conn = new SqlConnection(cadenaConexion);
            SqlDataAdapter da = new SqlDataAdapter();
            SqlCommand co = new SqlCommand("", conn);
            SqlCommand co2 = new SqlCommand("", conn);
            SqlCommand co3 = new SqlCommand("", conn);

            if (filtro == "")
            {
                co.CommandText = "select * from " + nombreTabla;
                co2.CommandText = co.CommandText + " WHERE estadopeticion LIKE 'en curso'";
                co3.CommandText = co.CommandText + " WHERE estadopeticion LIKE 'finalizado'";
            }
            else
            {
                co.CommandText = "select * from " + nombreTabla + " WHERE " + filtro;
                co2.CommandText = co.CommandText + " AND estadopeticion LIKE 'en curso'";
                co3.CommandText = co.CommandText + " AND estadopeticion LIKE 'finalizado'";
            }

            


            da.SelectCommand = co;
            da.Fill(ds, nombreTabla);

            da.SelectCommand = co2;
            da.Fill(ds, "peticiones2");

            da.SelectCommand = co3;
            da.Fill(ds, "peticiones3");


            curso = ds.Tables["peticiones2"];
            fin = ds.Tables["peticiones3"];
            todos = ds.Tables["peticiones"];

            return ds.Tables[nombreTabla];
        }
        */
        public float RecuperarPrecio(string modelo, string tipov)
        {
            float precioV;

            DataSet bdvirtual = new DataSet();

            SqlDataAdapter da = new SqlDataAdapter("select * from vehiculos WHERE modelo LIKE '" + modelo + "'", cadenaConexion);

            da.Fill(bdvirtual, "vehiculos");



            DataTable dt = new DataTable();
            dt = bdvirtual.Tables["vehiculos"];

            if (tipov == "Venta")
            {
                precioV = float.Parse(dt.Rows[0]["precioventa"].ToString());
            }
            else
                precioV = float.Parse(dt.Rows[0]["precioalquiler"].ToString());
            return (precioV);


        }

    }
}
